OSPF 您所在的位置:网站首页 ospf fr OSPF

OSPF

2024-01-13 01:23| 来源: 网络整理| 查看: 265

OSPF 原创

shuiyong1989 2013-02-21 14:10:38 博主文章分类:路由 ©著作权

文章标签 OSPF 文章分类 代码人生

©著作权归作者所有:来自51CTO博客作者shuiyong1989的原创作品,请联系作者获取转载授权,否则将追究法律责任

 <OSPF(Open Shortest Path First)>

  ·OSPF属于IGP,是Link-State协议,基于IP Pro 89。 ·采用SPF算法(Dijkstra算法)计算最佳路径。 ·快速响应网络变化。 ·网络变化是触发更新。 ·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。   OSPF维护的3张表: 1)Neighbor Table:  确保直接邻居之间能够双向通信。 2)Topology Table:  LSDB(Link-State DataBase),同一区域的所有路由器LSDB相同。 3)Routing Table:  对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。   OSPF的区域划分: ·OSPF采用层次设计,用Area来分隔路由器。  区域中的路由器保存该区域中所有链路和路由器的详细信息,  但只保存其他区域路由器和链路的摘要信息。   ·Transit area (backbone or area 0)  主要功能:为快速、高效地传输数据包。通常不接用户。   ·Regular areas (nonbackbone areas)  主要是连接用户。而且所有数据都必须经过area 0中转。  包括:Stub / Totally Stubby / NSSA   采用层次设计的好处:  1、减少了路由表的条目  2、LSA的flood在网络边界停止,加速会聚  3、缩小网络的不稳定性,一个区域的问题不会影响其它区域。   路由器的分类:   OSPF的邻居与邻接关系:   ·OSPF路由器与它直连的邻居建立邻居关系。 ·OSPF路由器只会与建立了邻接关系的路由器互传LSA。 ·路由器只和建立了邻接关系的邻居才可以到达FULL状态。 ·路由更新只在形成FULL状态的路由器间传递。 ·P2P链路可以到达FULL状态。 ·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。   邻居及邻接的区别.   邻居---必须有直连的链路   邻接--- 1. 必须是邻居, 2. 链路两边同一区域的数据库必须同步(状态为:FULL).    Route-ID:  为唯一标识OSPF域中路由器。  设置Route-ID的优先顺序:  1)手工指定Route-ID x.x.x.x(可任意,但不能重复)  2)最大的Loopback IP  3)最大的接口IP(保证接口是激活状态)higher active physical interface ip   推荐使用环回口和手工指定的router-id,因为它们的稳定性更高。   DR/BDR的选举:  1)比较优先级,越大越优(默认为1,如设为0表示不参与选举)  2)比较Route-ID,越大越优。   ·DRother发送LSA给DR/BDR用224.0.0.6 ·DR发送LSA给DRother用224.0.0.5 ·非MA网络(没有DR/BDR),路由器都用224.0.0.5     <DR/BDR>特点    1)不抢占,DR正常时,即使有新的Pri比DR高的路由器也不能抢占成为DR。  2)DR正常时,BDR只接收所有信息,但转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。  3)DR是个接口概念。每个网段都会选举DR。   4) 不同网段分别选DR/BDR   SPF算法: 1、在一个区域内的所有路由器有同样的LSDB 2、每一个路由器在计算时都将自已做为树根 3、具有去往目标的最低cost值的路由是最好的路径 4、最好的路由被放入转发表   计时器: ·Hello Intervals:10S/30S ·Dead Interval:4*Hello =40S  不同于其它协议的三倍于Hello时间   hello包发向224.0.0.5   下面这三种网络类型的hello时间是30S NON_BROADCAST  POINT_TO_MULTIPOINT  POINT_TO_MULTIPOINT NON_BROADCAST   OSPF开销值计算: ·OSPF Cost = 108/BW (bps) 环回口的COST值是1,serial口的COST值是64,以太口是10 --------------------------------------------------------------------------------   ·OSPF的5种报文:  1)Hello:发现并建立邻接关系。  2)DBD:包含路由的摘要信息。       DBD包中有一个三位的标志字段(主从关系控制标志):I、M、master/slaver I(是否第一个包) M(是否还有后续包) M/S 1 1 1 0 1 0 0 1 1 分别是0x7,0x2,0x3     具有最高接口地址的路由器为主,建邻居时第一个DBD是空的。  3)LSR:向另一台路由器请求特定路由的完整信息。  4)LSU:回应LSR该条路由的完整信息。在OSPF中,只有LSU需要显示确认  5)LSAck:对LSU做确认。   OSPF建邻居的必要条件:  1)Hello/Dead Intervals  2)Area ID  3)Authentication Password  4)Stub Area Flag   5)MTU   6)subnet mask(必须是同一个网段)   OSPF状态机: 1、down state 2、init state 3、two-way state 4、exstart state 5、exchange state 6、loading state 7、full state   LSA序列号: 1、LSDB中每一个LSA都有一个序列号 2、序列号范围从0x80000001-0x7FFFFFFF 3、OSPF每30分钟flood一次LSA来维持LSDB同步 4、当一个路由器遇到同一个LSA的两个实例时,它必须能够确定哪一个是最近的LSA。(根据序列号来识别) LSA条目的老化时间默认是一小时(0-3600S)   当一条LSA的序列号到达最大序列号时,始发路由器会发送一个生存时间为最大值的LSA,让其它的路由器从LSDB中清除这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。 注意:只有始发路由器才可以提前使这条LSA老化   --------------------------------------------------------------------------------------- <OSPF>   R1(config)#router ospf 110    注意:进程号是cisco的私有技术,十进制或点分十进制表示都可 R1(config-router)#network 1.1.1.0 0.0.0.255 area 0(正/反掩码皆可) R1(config-router)#network 12.1.1.0 255.255.255.0 area 0    R1#show ip protocols  R1#show ip ospf       可查看router-id,进程号,域的数量 R1#show ip ospf interface  R1#show ip ospf interface brief  R1#show ip ospf neighbor    查看邻居信息     查看Router-id   network 1.1.1.0 0.0.0.255 area 0.0.0.0   不同进程号   不同Area   Hello/Dead Intervals    R4(config-if)#ip ospf hello-interval 9                       (dead自动*4)   R4(config-if)#ip os dead-interval 80   R1#show ip os database  -------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------- 假如在一个大型网络中,OSPF如果没有分层,会有以下的问题产生: 1、每一个路由器会接收到太多的LSA 2、会经常进行路由的计算 3、路由表太大,而路由器的内存是有限的。   OSPF路由器的类型: 1、内部路由器--在一个普通区域内的路由器 2、核心路由器--在area 0区域内的路由器 3、ABR区域边界路由器--连接两个不同区域的路由器 4、ASBR自治系统边界路由器--连接OSPF域到另一个自治系统的路由器   <LSA(Link-State Advertisement)>   学习时的注意点: 1、传播范围   2、由谁产生  3、包含内容   ·类型         指明是哪种类型的LSA ·Link-ID      每一条LSA都有一个Link-ID,区分不同路由器发出的LSA ·ADV Router   指Router-id               1     2    3    4    5    7 Link ID    RID   DR IP Route ASBR RID Route  Route     LSA1(Router Link States) R1#show ip ospf database router   查看LSDB中的1类LSA的详细信息   1、域内路由,仅在本区域传递,不会穿越ABR。 2、每台路由器都会产生。 3、包含本路由器的直连的邻居,以及直连网络的信息 Link ID:        router ID ADV router:     router ID 三种信息:Another neighbor    stub network   transit  network(Ma网络的一些信息)   LSA2(Net Link States) R1#show ip ospf database network   1、仅在本区域传递 2、只有MA网络才会产生LSA2,由DR发出。 3、标识出本MA网中有哪些路由器以及本网的掩码信息。 Link ID:        DR的接口IP ADV router:     DR的router ID   LSA3(Summary Net Link States) R1#show ip ospf database summary    1、域间路由,能泛洪到整个AS。     2、由ABR发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id. 3、包含本区域中的所有路由信息,包括网络号和掩码。 Link ID:        路由route(网络号) ADV router:     ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)     LSA4(Summary ASB Link States) R1#show ip os database asbr-summary    1、把ASBR的Router-id传播到其他区域,让其他区域的路由器得知ASBR的位置。     2、由ABR产生并发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id.   Link ID:        ASBR的RID ADV router:     ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)   在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出一类的LSA,其中会指明自已是ASBR LSA5(Type-5 AS External Link States) R1#show ip os database external    1、域外路由,不属于某个区域。     2、ASBR产生,泛洪到整个AS。不会改变ADV Router。 3、包含域外的路由 Link ID:        路由(网络号) ADV router:     ASBR的router ID (unchange)   LSA7(Type-7 AS External Link States) R2#show ip os database nssa-external    特殊的域外路由,只存在于NSSA区域中。 Link ID:        路由(网络号)    ADV router:     ASBR的router ID (只在NSSA区域中)   R2(config-if)#bandwidth 5000 R2(config-if)#ip ospf cost 30   ·重分布进OSPF的路由默认为E2,Cost=20,且传递过程中不改变COST。 ·如果改为E1类型,则在传输过程中会累加每个入接口的cost值 R4(config-router)#redistribute rip subnets metric 8   新命令: Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]   定义一个百分比值,当收到LSA的条数超过我指定的值,进行相应的操作,用于限定路由器所能收到的LSA条数 maximum-number   所允许收到LSA的最大条数 [threshold-percentage]  所允许收到LSA的百分比,maximum-number的百分比,默认75% [warning-only]    只发送警告,不做其它动作,默认是关闭的 [ignore-time]     超过最大值后进入ignore状态的时间,默认5分钟,5分钟后恢复 [ignore-count]    超过多少次后,一直进入ignore状态 [reset-time]      一直进入ignore状态后多长时间重置所有邻居   <修改Cost参考值>   ·OSPF Cost = 108/BW (bps)    环回口的COST值是1,serial口的COST值是64,以太口是10   R1(config)#router os 110 R1(config-if)#ip ospf cost 10  直接修改COST值1-65535  //推荐方法 R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)在COST公式中修改分子,本例修改分子为10的九次方 ------------------------------------------------------------------------------------------- 汇总的好处: 1、减少路由条目数 2、使拓扑变化的影响局限在一个小范围内 3、减少了LSA3和LSA5的flood   <域间汇总>   R2(config)#router os 110 R2(config-router)#area 0 range 172.16.32.0 255.255.224.0          (汇总哪个区域的路由)   本地产生 O  172.16.32.0/19 is a summary, 00:00:06, Null0 建议在本区域的所有ABR上做。 域间汇总只对本区域内的LSA1、LSA2类起作用。   <域×××总>   R4(config)#router os 110 R4(config-router)#summary-address 44.0.0.0 255.0.0.0 (在ASBR上做)   本地产生 O  175.5.64.0/22 is a summary, 00:00:04, Null0   //?作用   <向OSPF域注入默认路由> 第一种做法: R4(config)#ip route 0.0.0.0 0.0.0.0 Serial 0 R4(config-router)#default-information originate    O*E2 0.0.0.0/0 [110/1]   以外部路由的形式下发   第二种做法: R4(config-router)#default-information originate always    R4(config-router)#default-information originate always metric-type 1 metr 3 ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- OSPF特殊区域 <Stub>   ·将某区域设为Stub可缩小区域的LSDB,降低内存消耗。阻止LSA4/5进入Stub区域。   R2(config-router)#area 2 stub    ·由ABR发出一条LSA3默认路由给Stub的其他路由器。  默认的Seed Cost=1   R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)在同时有两个ABR的情况下,通过修改这个COST值来实现选路   ·必须将Stub区域的所有路由器都配成Stub。  Stub区域不能用作虚链路的中转区域。  Stub中不能出现ASBR。  Area 0不能配成Stub。   <Totally Stubby > Cisco 私有   ·更加缩小区域的LSDB,在Stub基础上,阻止LSA3。(阻止LSA3/4/5 ) ·也会由ABR发出一条LSA3默认路由给Stub的其他路由器。   R2(config-router)#area 2 stub no-summary (只需在ABR上做)   <NSSA(Not-So-Stubby Areas)>   ·只有NSSA区域中才会现LSA7,可以存在ASBR。  阻止LSA4/5。  ABR将LSA7转成LSA5,传播到其他区域。这时,ABR也成为了ASBR,因为它也引入了LSA5。其它路由器看到LSA5的通告路由器是ABR。   R2(config-router)#area 2 nssa (NSSA区域不会自动产生默认路由,要手动下发一条)   R2(config-router)#area 2 nssa default-information-originate   (在ABR上做,由ABR产生一条LSA7默认路由传播到NSSA其他路由器,默认Seed Cost=1,并且不会发生变化)   R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6) R2(config-router)#area 2 nssa default-information-originate metric 6 metric-type 1 Metric-type 1的作用是将N2类型的路由改为N1类型的路由   R2(config-router)#area 2 nssa no-redistribution 在ABR上做  (对ABR上有外部路由进入NSSA区域时,将其阻止,因为在ABR向nssa区域下发默认路由后,不需要它再将它直连的一些外部区域路由传进NSSA区域)以上两个命令可以打在一起。   totally NSSA area 也是CISCO私有特性-- R2(config-router)#area 2 nssa no-summary 把三类的LSA也干掉,同时也下发一条默认路由,并且这条默认路由会取代default-information-originate所下发的默认路由  (Totally NSSA,阻止LSA3/4/5,由ABR产生LSA3默认路由传播到NSSA其他路由器)   R2(config-router)#area 2 nssa no-redistribution default-information-originate no-summary   (LSDB中会出现LSA3/7默认路由,路由表中只会显示LSA3默认路由)   R2(config-router)#area 2 nssa translate type7 supp 这个命令通常用在NSSA区域的边界路由器上,作用是在7类转5类出去的时候,把这个forward address变成0.0.0.0   ----------------------------------------------------------------------------------------- <OSPF区域问题>   1)在ABR上起不同OSPF进程,进行OSPF之间的重分布。    例如:R3的s1口在area 1中,进程号是10,s0口在area 3中,进程号是20    Router ospf 10                           router ospf 20    Redistribute ospf 20 subnets             redistribute ospf 10 subnets   2)tunnel 只要在区域的两个边界上配置   Int tunnel 1                      int tunnel 3   Tunnel source s1                  tunnel source s1   Tunnel destination 13.1.1.3       tunnel destination 13.1.1.1   Ip add 111.1.1.1 255.255.255.0    Ip add 111.1.1.3 255.255.255.0   Router ospf 10                    router ospf 10   Net 111.1.1.0 0.0.0.255 area 0    net 111.1.1.0 0.0.0.255 area 0   3)虚链路:   最简单的方法,只需在区域的两台边界路由器上配就可以了  R3(config-router)#area 2 virtual-link 2.2.2.2            (中转区域)   (对方Router-ID)      ·远离Area0 / 分隔的Area 0          R2#show ip ospf virtual-links      <负载均衡>   ·OSPF只支持等价的负载均衡。(默认为4条)   R1#show ip protocols    R1(config)#router ospf 110 R1(config-router)#maximum-paths 6(最多6条)   <被动接口>   R1(config)#router ospf 110 R1(config-router)#passive-interface loopback 0   接口将不收发Hello包,但此接口还是被宣告进OSPF。 其他路由器仍可收到这接口的路由。(不收不发)   <认证>   ·分Link/Area/Virtual-Link 3种认证  每种认证都分为 simple password (plain Text) & MD5   R1#debug ip ospf adj   Link:同一链路上的路由器之间,在接口下做  R1(config-router)#int s1  R1(config-if)#ip ospf authentication-key wolf (相当于key-string) (配明文密码)  R1(config-if)#ip ospf authentication       (启动明文认证)   R1(config-if)#ip ospf message-digest-key 1 (key号)md5 (mode)wolf(key string)(配密文密码) R1(config-if)#ip ospf authentication message-digest (启动密文认证) 注意:在MD5验证中,两边的KEY号必须一致,哈希时会用到KEY号   Area:接口下配密码,进程下调用  R1(config-router)#int s0  R2(config-if)#ip ospf message-digest-key 1 md5 wolf   (配密文密码)  R2(config-router)#area 0 authentication Message-digest  (启动密文认证)    区域内的所有路由器都要认证。   Virtual-Link:  R2(config-router)#area 2 virtual-link 2.2.2.2 message-digest-key 1 md5 wolf (配密文密码)  R2(config-router)#area 2 virtual-link 2.2.2.2 authentication message-digest (启动密文认证)    如果Area0启动认证,在Virtual-Link上也要启动相应的认证。   ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- 网络的物理连接类型分三种: 1)POINT_TO_POINT:     2)BROADCAST:       3)NON_BROADCAST(NBMA):    <OSPF Network Type>   1)LOOPBACK:       Loopback        32位主机路由   2)POINT_TO_POINT:    Serial / FR's P2P Subif / BRI(无DR,组播更新) 3)BROADCAST:      Ethernet / Token Ring     (选举DR,通过组播建邻居) 4)NON_BROADCAST(NBMA): FR's Physical / FR's MP Subif(选举DR,单播更新) 5)POINT_TO_MULTIPOINT:                    (无DR,组播更新,出现/32主机路由) 6)POINT_TO_MULTIPOINT NON_BROADCAST:             (无DR,单播,出现/32主机路由)   [2/3] Hello:10S       [4/5/6] Hello:30S ·每种接口都被赋予了默认的OSPF Network Type,但可手工对其修改。    将Serial的Network Type改为Boradcast,测试不同网段选举DR。   ·NON_BROADCAST     NBMA FR的物理接口和多点子接口默认是NBMA网络类型  R1(config-if)#ip ospf network non-broadcast   R1(config)#router os 110  R1(config-router)#neighbor 12.1.1.2 由于是单播更新,必须指定邻居(只需一方设置就OK,一般在Hub指Spoke)   ·POINT_TO_MULTIPOINT (BORADCAST)  R1(config-if)#ip ospf network point-to-multipoint     O   12.1.1.1/32 [110/64] via 12.1.1.1, 00:01:12, Serial0 (对方直连接口主机路由是32位)   ·POINT_TO_MULTIPOINT NON_BROADCAST  R2(config-if)#ip ospf network point-to-multipoint non-broadcast   R2(config)#router os 110  R2(config-router)#neighbor 12.1.1.1   用show ip ospf interface serial 0看不到non-broadcast,只能show run   正是因为会出现32位的主机路由,所在在HUB-SPOKE模式中,不用做全互连。只要在SPOKE端写一条指向HUB端的MAP。   <同一网段Hub & Spoke OSPF>   ·FR环境:关闭反向ARP,手工映射。      HUB可访问Spoke,Spoke之间不能互访。   ________________________________________________________________________________________   应用环境       不支持广播的物理网络         支持广播的物理网络           (FR map 不加Broadcast)       (FR map 加Broadcast) ________________________________________________________________________________________                 单播                 组播 ________________________________________________________________________________________               NON_BROADCAST              BROADCAST              手工NEI                 自动NEI  手工映射        手工MAP                 手工MAP              手工DR                 手工DR ________________________________________________________________________________________                P2MP-NBMA                                P2MP              手工NEI                 自动NEI  自动映射        自动MAP                 自动MAP               无DR                  无DR ________________________________________________________________________________________ ·NON_BROADCAST    ·3层是NBMA,2层是否让通过广播都无所谓。(FR map后加不加Broadcast皆可)    在HUB端(R1)单播  R1(config)#router os 110  R1(config-router)#neighbor 145.1.1.4  R1(config-router)#neighbor 145.1.1.5    确保HUB成为DR,和Spoke交互路由信息。  R1(config)#int s0  R1(config-if)#ip ospf priority 2  R4/R5(config-if)#ip ospf priority 0    R4: O  5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial  手工MAP(Spoke 端的互访)  R4(config-if)#frame-relay map ip 145.1.1.5 401  R5(config-if)#frame-relay map ip 145.1.1.4 501     ·BROADCAST    ·3层是BMA,2层也一定要让广播通过。(FR map后一定要加Broadcsat)  R1(config-if)#fram ma ip 145.1.1.4 104 broadcast   R1(config-if)#fram ma ip 145.1.1.5 105 broadcast     确保HUB成为DR,和Spoke交互路由信息。  R1(config)#int s0  R1(config-if)#ip ospf priority 2  R4/R5(config-if)#ip ospf priority 0    R4: O  5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial  手工MAP  R4(config-if)#frame-relay map ip 145.1.1.5 401 broadcast  R5(config-if)#frame-relay map ip 145.1.1.4 501 broadcast   ·POINT_TO_MULTIPOINT NON_BROADCAST   cisco专有的    ·3层是NBMA,2层是否让通过广播都无所谓。(FR map后加不加Broadcast皆可)    在HUB端(R1)单播  R1(config)#router os 110  R1(config-router)#neighbor 145.1.1.4  R1(config-router)#neighbor 145.1.1.5    R4: O  145.1.1.5/32 [110/128] via 145.1.1.1, 00:00:24, Serial1  产生/32主机路由,且下一跳指向HUB,所以不需手工MAP。这就是32位的好处。 ·POINT_TO_MULTIPOINT    全自动,最好的    ·3层是允许广播,2层也一定要让广播通过。(FR map后一定要加Broadcsat)     ·R1#show ip os neighbor detail    DR is 0.0.0.0 BDR is 0.0.0.0  P2P/P2MP/P2MP NBMA都不需要选举DR/BDR,所以DR is 0.0.0.0 BDR is 0.0.0.0     ·POINT_TO_POINT(做不同网段)    HUB端起2个P2P子接口:  interface Serial0   encapsulation frame-relay   no frame-relay inverse-arp    interface Serial0.14 point-to-point   ip address 14.1.1.1 255.255.255.0   frame-relay interface-dlci 104       interface Serial0.15 point-to-point   ip address 15.1.1.1 255.255.255.0   frame-relay interface-dlci 105        HUB端点到多点,SPOKE端点到点 收藏 评论 分享 举报

上一篇:EIGRP

下一篇:IS-IS



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有